When a user of a client device, such as a personal computer, requests a data search from a server device in a client-server computing architecture, the data search can result in a large data set that is returned to the client. Typically, the time that it takes to return a large data set to a client is delayed by a low bandwidth connection at some point between the client device and the server device. This delay can significantly increase the time between when the user requests the data and when the data is displayed, or otherwise rendered, at the client device. In many cases, the delay can be significant enough that a user will cancel the request before the data is rendered for use. For an e-commerce site offering goods and/or services on the Internet, for example, canceled requests for a list of products can mean the difference between a successful or failed business venture.
The time that it takes to transmit data from one computing device to another is a common problem with many network systems. Often a delay in data transmission is likely to be caused by a low bandwidth connection associated with the client device, such as a consumer in the e-commerce example. Although an e-commerce site might be optimized to quickly serve a consumer request for data, the consumer might be slow to receive the data due to a limitation of the consumer's communication equipment, such as a common 56K modem. Accordingly, there is a need to reduce the time that it takes to transmit data from one device to another via a network system, while recognizing the limitations of existing communication devices.
Server systems, such as Web sites for example, attempt to work around the problem of a low bandwidth connection in relation to a large quantity of data to be transmitted by simply limiting, or partitioning, the return data set. However, partitioning or limiting a data set so that it can be returned in a reasonable amount of time may not correspond to the expectations of a consumer, or user of a client device, initiating the data request.
A consumer that initiates a request for all of the possible round-trip flight combinations within a particular week, for example, does not want to receive only ten choices when there are actually many more available to choose from. Additionally, the provider of the information does not want the return data set limited to only the ten choices because the consumer may choose to purchase the flight tickets elsewhere, when in fact the flight combination that the consumer desired was available, but not returned to the consumer as a possible choice.
This is a different type of data request from the typical search request where a user of a client device initiates an Internet search for a particular product or service and expects to receive the closest ten or so matches that correspond to the search criteria. From the closest matching results, the user can then select a particular provider of the product or service to make further inquiries.
For example, a consumer that desires to purchase a new portable computer initiates a search for distributors of new computers. After receiving the top ten or so matches that correspond to the request, the consumer can select a computer distributor and further initiate a data request for all of the portable computers available through the particular distributor. This data request is similar to the consumer request for all of the possible round-trip flight combinations within a particular week. The user does not want to receive only a few of the possible new portable computer choices when the particular computer distributor actually has many to choose from.
In addition to there being a need to reduce the time that it takes to transmit data from one computing device to another via a network system, there is also a need to be able to return a complete data set when requested, rather than only a partial or incomplete list of the data.